﻿package net.whatmark.playavillain.Index
{
	import flash.display.Bitmap;
	
	import jp.progression.*;
	import jp.progression.casts.*;
	import jp.progression.commands.*;
	import jp.progression.events.*;
	import jp.progression.loader.*;
	import jp.progression.scenes.*;

	public class FeatureScene extends SceneObject
	{
		[Embed(source="img/Index/scene02.png")]
		private var img:Class;
		public var page:Bitmap;
	
		public function FeatureScene()
		{
			page=new img;
			page.x = 150;
			page.y = 200;
		}


		// 目的地のシーンが自身もしくは子シーンを示している場合、移動処理時に階層が変更された瞬間に発生
		// 主に階層を下っても継続的に表示される画面処理（半透明の画面を重ねていく、等）などで使用
		// このイベント処理の実行中には、addCommand() メソッド、及び insertCommand() メソッドによるコマンドの同期処理が行えます。
		protected override function _onLoad():void
		{
			addCommand();
		}


		// 移動先として指定したシーンに到着した瞬間に発生します。
		// 主にそのシーンでのみ表示したい画面処理などで使用します。
		// このイベント処理の実行中には、addCommand() メソッド、及び insertCommand() メソッドによるコマンドの同期処理が行えます。
		protected override function _onInit():void
		{
			page.alpha=0;

			// 実行したいコマンドを登録
			addCommand( 
				new AddChild(progression.container, page),
				new DoTweener(page, {alpha:1, time:1}));
		}


		// 移動処理が開始され、現在のシーンから移動する瞬間に発生
		// 主に SceneEvent.INIT で表示した画面の消去処理などで使用
		// このイベント処理の実行中には、addCommand() メソッド、及び insertCommand() メソッドによるコマンドの同期処理が行えます。
		protected override function _onGoto():void
		{
			// 実行したいコマンドを登録
			addCommand( 
				new DoTweener(page, {alpha:0, time:0.5}),
				new RemoveChild(progression.container, page));
		}


		// 目的地のシーンが親シーンを示している場合、移動処理時に階層が変更された瞬間に発生
		// 主に SceneEvent.LOAD イベントで表示した画面の消去処理などで使用
		// このイベント処理の実行中には、addCommand() メソッド、及び insertCommand() メソッドによるコマンドの同期処理が行えます。
		protected override function _onUnload():void
		{
			addCommand();
		}
	}
}